<html>
<head><meta charset="utf-8"><title>impl Error or dyn Error? · project-error-handling · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/index.html">project-error-handling</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html">impl Error or dyn Error?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="213227086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213227086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213227086">(Oct 13 2020 at 22:50)</a>:</h4>
<p>Do we have any guidance on whether code that accepts generic errors (my case is a serialization framework) should accept:</p>
<ul>
<li><code>impl Error + ?Sized + 'a</code></li>
<li><code>impl Error + 'a</code></li>
<li><code>impl Error + 'static</code></li>
<li><code>dyn Error + 'a</code></li>
<li><code>dyn Error + 'static</code></li>
</ul>
<p>Maybe this is covered a bit by the ##<strong>project-error-handling&gt;dyn error handling</strong>  topic. For a trait like <code>Debug</code>, my suggestion would normally be <code>impl Debug + 'a</code>, but that doesn't quite work for <code>Error</code>, because then you can't downcast, and <code>&amp;dyn Error</code> isn't covered because of missing trait implementations. Then you have questions about <code>Send + Sync</code>.</p>
<p>Do we want to make <code>impl Error</code> more useful? Or do we want to recommend code that abstracts over error types prefer one of:</p>
<ul>
<li><code>dyn Error + 'a</code></li>
<li><code>dyn Error + 'static</code></li>
<li><code>dyn Error + Send + Sync + 'static</code></li>
</ul>
<p>with <code>dyn Error + 'a</code> being the loosest, and <code>dyn Error + Send + Sync + 'static</code> being the tightest?</p>



<a name="213227122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213227122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213227122">(Oct 13 2020 at 22:51)</a>:</h4>
<p>I think we should recommend Send + Sync, the way the API guidelines do: <a href="https://rust-lang.github.io/api-guidelines/interoperability.html#error-types-are-meaningful-and-well-behaved-c-good-err">https://rust-lang.github.io/api-guidelines/interoperability.html#error-types-are-meaningful-and-well-behaved-c-good-err</a></p>



<a name="213227141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213227141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213227141">(Oct 13 2020 at 22:51)</a>:</h4>
<p>no opinion yet on <code>impl</code> vs <code>dyn</code></p>



<a name="213227550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213227550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213227550">(Oct 13 2020 at 22:56)</a>:</h4>
<p><code>impl</code> won't really be useful unless we do something like <a href="https://github.com/rust-lang/rust/pull/75180">https://github.com/rust-lang/rust/pull/75180</a></p>



<a name="213227639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213227639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213227639">(Oct 13 2020 at 22:57)</a>:</h4>
<p>Which seems like it can interact badly with existing inherent methods on <code>dyn Error</code>. I guess we've really geared the <code>Error</code> trait to be used as a trait object</p>



<a name="213233708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213233708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213233708">(Oct 14 2020 at 00:20)</a>:</h4>
<p>I think dyn is probably the better option of those two (not confident)</p>



<a name="213233733"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213233733" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213233733">(Oct 14 2020 at 00:21)</a>:</h4>
<p>and for the lifetime bounds, iunno, does serialization need downcasting?</p>



<a name="213234489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213234489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213234489">(Oct 14 2020 at 00:32)</a>:</h4>
<p>I wouldn't think so, but you _may_ need to forward through some other API that still expects <code>'static</code> (I hit this with <code>tracing</code>)</p>



<a name="213234530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213234530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213234530">(Oct 14 2020 at 00:33)</a>:</h4>
<p>So maybe the ultra-conservative <code>dyn Error + Send + Sync + 'static</code> is really the only useful recommendation to make?</p>



<a name="213234587"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213234587" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213234587">(Oct 14 2020 at 00:34)</a>:</h4>
<p>seems like a safe default</p>



<a name="213234986"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213234986" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213234986">(Oct 14 2020 at 00:40)</a>:</h4>
<p>imo <code>impl Error</code> might make things more convenient than using <code>dyn</code></p>



<a name="213235012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235012">(Oct 14 2020 at 00:41)</a>:</h4>
<p><span class="user-mention" data-user-id="120823">@DPC</span> It _should_... But unfortunately it doesn't <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>



<a name="213235021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235021">(Oct 14 2020 at 00:41)</a>:</h4>
<p>It excludes <code>&amp;dyn Error</code> and <code>Box&lt;dyn Error&gt;</code></p>



<a name="213235055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235055">(Oct 14 2020 at 00:41)</a>:</h4>
<p>dreaming of specialization</p>



<a name="213235063"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235063" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235063">(Oct 14 2020 at 00:41)</a>:</h4>
<p>fair</p>



<a name="213235110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235110">(Oct 14 2020 at 00:42)</a>:</h4>
<p>Which could be point-in-time issues, but there isn't a clear path to making <code>Box&lt;dyn Error&gt;</code> implement the <code>Error</code> trait yet</p>



<a name="213235114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235114">(Oct 14 2020 at 00:42)</a>:</h4>
<p>i meant more in a "perfect world" where we are starting from scratch and we didn't have <code>Box&lt;dyn Error&gt;</code> anywhere</p>



<a name="213235161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235161">(Oct 14 2020 at 00:43)</a>:</h4>
<p><span class="user-mention silent" data-user-id="204346">Ashley Mannix</span> <a href="#narrow/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F/near/213235110">said</a>:</p>
<blockquote>
<p>Which could be point-in-time issues, but there isn't a clear path to making <code>Box&lt;dyn Error&gt;</code> implement the <code>Error</code> trait yet</p>
</blockquote>
<p>does specialization not give us this in theory?</p>



<a name="213235177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235177">(Oct 14 2020 at 00:43)</a>:</h4>
<p>either specialization or negative impls</p>



<a name="213235187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235187">(Oct 14 2020 at 00:43)</a>:</h4>
<p>wait no</p>



<a name="213235190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235190">(Oct 14 2020 at 00:43)</a>:</h4>
<p>In a perfect world I think it would look something like:</p>
<div class="codehilite"><pre><span></span><code>pub trait Error {}

impl&lt;E: ?Sized + Error&gt; Error for &amp;E {}
impl&lt;E: ?Sized + Error&gt; Error for Box&lt;E&gt; {}

pub struct TheRealBoxError {}
impl Error for TheRealBoxError {}
</code></pre></div>



<a name="213235193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235193">(Oct 14 2020 at 00:43)</a>:</h4>
<p>negative impls doesnt help this one</p>



<a name="213235263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235263">(Oct 14 2020 at 00:44)</a>:</h4>
<p>yea</p>



<a name="213235265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235265">(Oct 14 2020 at 00:44)</a>:</h4>
<p>want</p>



<a name="213235272"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235272" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235272">(Oct 14 2020 at 00:44)</a>:</h4>
<p><span class="user-mention" data-user-id="220273">@Jane Lusby</span> I always forget what specialization does and doesn't cover, but I thought because one of the conflicting impls isn't a subset of the other that it's not a specialization candidate <span aria-label="thinking" class="emoji emoji-1f914" role="img" title="thinking">:thinking:</span></p>



<a name="213235306"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235306" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235306">(Oct 14 2020 at 00:45)</a>:</h4>
<p>possibly</p>



<a name="213235307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235307">(Oct 14 2020 at 00:45)</a>:</h4>
<p>It wasn't the <code>impl Error for Box&lt;dyn Error&gt;</code> that breaks was it. It's some unrelated <code>From</code> impls?</p>



<a name="213235312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235312">(Oct 14 2020 at 00:45)</a>:</h4>
<p>yea</p>



<a name="213235315"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235315" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235315">(Oct 14 2020 at 00:45)</a>:</h4>
<p>a small "divergence" , is there a reason people use <code>Box&lt;dyn Error&gt;</code> for errors?</p>



<a name="213235320"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235320" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235320">(Oct 14 2020 at 00:45)</a>:</h4>
<p>its From&lt;T&gt; for T and From&lt;E: Error&gt; For Box&lt;dyn Error&gt;</p>



<a name="213235335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235335">(Oct 14 2020 at 00:45)</a>:</h4>
<p>Ahh that's right</p>



<a name="213235390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235390">(Oct 14 2020 at 00:46)</a>:</h4>
<p>did we decide to not add support for explicit resolution of overlap like that?</p>



<a name="213235407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235407">(Oct 14 2020 at 00:46)</a>:</h4>
<p>if we added a third impl From&lt;Box&lt;dyn Error&gt;&gt; for Box&lt;dyn Error&gt; that would resolve it</p>



<a name="213235419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235419">(Oct 14 2020 at 00:46)</a>:</h4>
<p>because that's pretty clearly a subset of both overlapping impls</p>



<a name="213235430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235430">(Oct 14 2020 at 00:47)</a>:</h4>
<p>afaik</p>



<a name="213235513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235513">(Oct 14 2020 at 00:48)</a>:</h4>
<p>Hmm, maybe we need some t-lang input on whether that's supposed to work <span aria-label="thinking" class="emoji emoji-1f914" role="img" title="thinking">:thinking:</span></p>



<a name="213235602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235602">(Oct 14 2020 at 00:49)</a>:</h4>
<blockquote>
<p>if we added a third impl From&lt;Box&lt;dyn Error&gt;&gt; for Box&lt;dyn Error&gt; that would resolve it</p>
</blockquote>
<p>but wouldn' that conflict with <code>From&lt;T&gt; for &lt;T&gt;</code>? (unless you are talking about +specialisation here)</p>



<a name="213235655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235655">(Oct 14 2020 at 00:50)</a>:</h4>
<p>Do we have a tracking issue already for making <code>&amp;E: Error</code> and <code>Box&lt;E: Error&gt;</code> implement <code>Error</code>?</p>



<a name="213235673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235673">(Oct 14 2020 at 00:50)</a>:</h4>
<p><span class="user-mention" data-user-id="120823">@DPC</span> It would need a sprinkling of specialization magic</p>



<a name="213235684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235684">(Oct 14 2020 at 00:50)</a>:</h4>
<p>this is one issue: <a href="https://github.com/rust-lang/rust/pull/75180">https://github.com/rust-lang/rust/pull/75180</a></p>



<a name="213235697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235697">(Oct 14 2020 at 00:50)</a>:</h4>
<p>err PR</p>



<a name="213235706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235706">(Oct 14 2020 at 00:51)</a>:</h4>
<p>The thing I'm not sure of is whether it's supposed to be covered by specialization or not</p>



<a name="213235719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235719">(Oct 14 2020 at 00:51)</a>:</h4>
<p>doesn't seem to link to anything, so i assume we don't have any tracking issue related to it</p>



<a name="213235749"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235749" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235749">(Oct 14 2020 at 00:51)</a>:</h4>
<p>It may be the "lattice" form of specialization</p>



<a name="213235868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235868">(Oct 14 2020 at 00:53)</a>:</h4>
<p><a href="https://github.com/rust-lang/rfcs/blob/master/text/1210-impl-specialization.md#the-lattice-rule">https://github.com/rust-lang/rfcs/blob/master/text/1210-impl-specialization.md#the-lattice-rule</a></p>



<a name="213235918"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235918" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235918">(Oct 14 2020 at 00:54)</a>:</h4>
<p>in the alternatives section</p>



<a name="213235919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235919">(Oct 14 2020 at 00:54)</a>:</h4>
<p>F</p>



<a name="213235939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235939">(Oct 14 2020 at 00:54)</a>:</h4>
<p>this is saddening news</p>



<a name="213235960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235960">(Oct 14 2020 at 00:55)</a>:</h4>
<blockquote>
<p>Moving to the lattice rule is backwards compatible</p>
</blockquote>
<p>A ray of hope</p>



<a name="213235978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235978">(Oct 14 2020 at 00:55)</a>:</h4>
<p>Box&lt;dyn Error&gt; is an error 2030 edition lets gooo</p>



<a name="213235983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213235983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213235983">(Oct 14 2020 at 00:55)</a>:</h4>
<p>Hmm, definitely looks like that would be a long way off if it was going to be pursued. I might set up a tracking issue then and write some stuff up on where we're at and what we could do</p>



<a name="213236035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236035">(Oct 14 2020 at 00:56)</a>:</h4>
<p>good idea</p>



<a name="213236041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236041">(Oct 14 2020 at 00:56)</a>:</h4>
<p>I'll add that to the action items</p>



<a name="213236085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236085">(Oct 14 2020 at 00:57)</a>:</h4>
<p>I can assign that to myself unless someone else feels confident / interested in filling out that issue</p>



<a name="213236153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236153">(Oct 14 2020 at 00:58)</a>:</h4>
<p>I'm happy to do it <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>



<a name="213236167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236167">(Oct 14 2020 at 00:59)</a>:</h4>
<p>k</p>



<a name="213236178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236178">(Oct 14 2020 at 00:59)</a>:</h4>
<p>all yours :D</p>



<a name="213236185"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236185" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236185">(Oct 14 2020 at 00:59)</a>:</h4>
<p>Just opened up <a href="https://github.com/rust-lang/project-error-handling/issues/16">https://github.com/rust-lang/project-error-handling/issues/16</a> as a start</p>



<a name="213236217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236217">(Oct 14 2020 at 00:59)</a>:</h4>
<p>the former impl in that issue isn't that hard right?</p>



<a name="213236230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236230">(Oct 14 2020 at 00:59)</a>:</h4>
<p>just that its breaking right?</p>



<a name="213236238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236238">(Oct 14 2020 at 00:59)</a>:</h4>
<p><strong>just</strong></p>



<a name="213236303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236303">(Oct 14 2020 at 01:00)</a>:</h4>
<p>That's right. We could just accept it and add it. It just clobbers auto deref on <code>dyn Error</code> and breaks a few things.</p>



<a name="213236320"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236320" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236320">(Oct 14 2020 at 01:01)</a>:</h4>
<blockquote>
<p>It just clobbers auto deref on dyn Error</p>
</blockquote>
<p>wait what</p>



<a name="213236402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236402">(Oct 14 2020 at 01:02)</a>:</h4>
<p>That's the breakage wasn't it? Where you have <code>&amp;'short &amp;'long dyn Error</code> so the lifetime you get in methods like <code>source</code> is <code>'short</code> instead of <code>'long</code>?</p>



<a name="213236414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236414">(Oct 14 2020 at 01:02)</a>:</h4>
<p>ooo</p>



<a name="213236417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236417">(Oct 14 2020 at 01:02)</a>:</h4>
<p>because auto deref doesn't care about lifetimes, and now &amp;dyn Error would be an error</p>



<a name="213236420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236420">(Oct 14 2020 at 01:02)</a>:</h4>
<p>thats wild</p>



<a name="213236429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236429">(Oct 14 2020 at 01:03)</a>:</h4>
<p>I have very poor memory, so I didn't recall</p>



<a name="213236456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236456">(Oct 14 2020 at 01:04)</a>:</h4>
<p>does the rust project make breaking changes when they think the impact is small enough?</p>



<a name="213236496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236496">(Oct 14 2020 at 01:04)</a>:</h4>
<p>I've always assumed that the rule was a hard one</p>



<a name="213236517"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236517" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236517">(Oct 14 2020 at 01:05)</a>:</h4>
<p>We can decide on a case-by-case basic whether or not to accept breakage <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span> Pretty much _everything_ breaks somebody</p>



<a name="213236527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236527">(Oct 14 2020 at 01:05)</a>:</h4>
<p>ooh dang</p>



<a name="213236530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236530">(Oct 14 2020 at 01:05)</a>:</h4>
<p>very cool</p>



<a name="213236620"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236620" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236620">(Oct 14 2020 at 01:06)</a>:</h4>
<p>In this case, I would personally happily accept that breakage by fixing those crates because making <code>&amp;dyn Error</code> implement <code>Error</code> seems really worthwhile</p>



<a name="213236624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236624">(Oct 14 2020 at 01:06)</a>:</h4>
<p>I think there was about 4 of them</p>



<a name="213236635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213236635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213236635">(Oct 14 2020 at 01:07)</a>:</h4>
<p>yeah normally there's a crater run to assess the breakage in the ecosystem, and a decision is made based on that</p>



<a name="213237923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213237923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213237923">(Oct 14 2020 at 01:33)</a>:</h4>
<p>But, as is usually pointed out, there is more code out there than is visible to crater.</p>



<a name="213237943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213237943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213237943">(Oct 14 2020 at 01:33)</a>:</h4>
<p>e.g., we are working on a 75kloc Rust project that is not open source (yet?)</p>



<a name="213237997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213237997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213237997">(Oct 14 2020 at 01:34)</a>:</h4>
<p>I remember hearing once of plans to make crater support private codebases</p>



<a name="213238003"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213238003" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213238003">(Oct 14 2020 at 01:34)</a>:</h4>
<p>where you could opt into running crater internally and post the results somehow</p>



<a name="213238024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213238024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jane Lusby <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213238024">(Oct 14 2020 at 01:34)</a>:</h4>
<p><em>kinda off topic</em></p>



<a name="213238039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213238039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213238039">(Oct 14 2020 at 01:35)</a>:</h4>
<p>crater does not feel very useful to me until it becomes more accurate :( especially for rustdoc <a href="https://github.com/rust-lang/crater/issues/532">https://github.com/rust-lang/crater/issues/532</a></p>



<a name="213241293"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213241293" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Ashley Mannix <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213241293">(Oct 14 2020 at 02:49)</a>:</h4>
<p>I'll aim to have something concrete to report on by the time we sync next, which is in 2 weeks I think <span aria-label="smile" class="emoji emoji-1f642" role="img" title="smile">:smile:</span></p>



<a name="213277272"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/257204-project-error-handling/topic/impl%20Error%20or%20dyn%20Error%3F/near/213277272" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> DPC <a href="https://rust-lang.github.io/zulip_archive/stream/257204-project-error-handling/topic/impl.20Error.20or.20dyn.20Error.3F.html#213277272">(Oct 14 2020 at 11:56)</a>:</h4>
<p>rustdoc is an "exception", but for most of the other changes, crater is good enough</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>